package controlador;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

import modelo.Juego;
import fiuba.algo3.titiritero.dibujables.SuperficiePanel;
import fiuba.algo3.titiritero.modelo.GameLoop;
import fiuba.algo3.titiritero.modelo.ObservadorDeGameLoop;

public class ObservadorJuegoFinalizado implements ObservadorDeGameLoop {
	GameLoop gameLoop;
	Juego juego;

	public ObservadorJuegoFinalizado(Juego unJuego, GameLoop unGameLoop) {
		juego = unJuego;
		gameLoop = unGameLoop;
	}

	@Override
	public void notificarCicloFinalizado() {
		BufferedImage imagen = null;
		Boolean ganoOPerdio = false;
		String direccion = null;
		
		if (juego.gano()) {
			ganoOPerdio = true;
			direccion = "/imagenes/Gano.png";	
		}
		else if (juego.perdio()) {
			ganoOPerdio = true;
			direccion = "/imagenes/Perdio.png";			
		}
		
		if (ganoOPerdio) {
			gameLoop.detenerEjecucion();
			
			try {
				imagen = ImageIO.read(new URL("file:///" + System.getProperty("user.dir") + direccion));
			}
			catch (IOException e) {
				e.printStackTrace();
			}
			
			SuperficiePanel superficiePanel = (SuperficiePanel)gameLoop.getSuperficieDeDibujo();
			Graphics grafico = superficiePanel.getBuffer();
			
			superficiePanel.removeAll();
			superficiePanel.updateUI();
			grafico.drawImage(imagen, 0, 0, null);
		}
	}
}
